package algo3.pruebas.armasTest;

import algo3.modelo.Direccion;
import algo3.modelo.Posicion;
import algo3.modelo.armas.Arma;
import algo3.modelo.armas.MinaSubmarinaPorContacto;
import algo3.modelo.barcos.Barco;
import algo3.modelo.barcos.Lancha;

public class MinaSubmarinaPorContactoTest extends ArmaTestConHerencia {

	public Arma crearArma(Posicion posicion){
		return  new MinaSubmarinaPorContacto(posicion);
	}
    
    public void testAvanzarUnTurnoYValidarQueLaMinaNoProduceDanios(){
    	Posicion posicion = new Posicion(4,5);
    	MinaSubmarinaPorContacto mina = new MinaSubmarinaPorContacto(posicion);
    	mina.avanzarTurno();
    	assertEquals(0, mina.getListaDeDanios().size());
    }
    
    public void testUnaLanchaImpactaConLaMinaYProduceUnDaño(){
    	Posicion posicion = new Posicion(4,5);
    	MinaSubmarinaPorContacto mina = new MinaSubmarinaPorContacto(posicion);
    	Barco barco = new Lancha(posicion, Direccion.DERECHA, Direccion.DERECHA);
    	mina.recibeImpactoDe(barco);
    	assertEquals(posicion, mina.getListaDeDanios().get(0).getPosicion());
    	
    }
    
    public void testUnaLanchaImpactaConLaMinaSeAvanzaUnTurnoYYaNoSeProduceDaño(){
    	Posicion posicion = new Posicion(4,5);
    	MinaSubmarinaPorContacto mina = new MinaSubmarinaPorContacto(posicion);
    	Barco barco = new Lancha(posicion, Direccion.DERECHA, Direccion.DERECHA);
    	mina.recibeImpactoDe(barco);
    	mina.avanzarTurno();
    	assertEquals(0, mina.getListaDeDanios().size());
    }
    
    
    	
    }
    

